Many modern communication systems, such as telephone systems and real-time digital multi-media computer systems, use full-duplex audio transmission. In full-duplex transmission, communication takes place simultaneously in both directions between a sender and a receiver. One problem with certain full-duplex communication systems, however, is that they can be susceptible to echoes. Echoes are created when audio data traveling in one direction is inadvertently combined with audio data traveling in the other direction, causing the sender of a message to hear part or all of his own message in the return transmission. Echoes may be acoustic, when sound coming from a speaker is transferred to the microphone, or they may be electromagnetic, when audio data is reflected at the receiving end of a transmission line back to the sender.
In order to function effectively, communication systems using full-duplex transmission usually provide some means of canceling or reducing echoes. In telephone systems, echo cancellation is normally provided within the telephone network. However, in real-time digital multi-media systems using compressed digital audio, the network echo cancellor may be bypassed and therefore may be unable to remove echoes. Because echoes become encoded within the digital data in such systems, echo cancellation generally requires digital sequences which represent both the input and the output at the time the input was acquired. Furthermore, it may be desirable to have a high degree of correlation between that input and output. Typically, however, the input and output streams are processed as half-duplex entities and are routed through the system using different paths. Consequently, diverse delays between input and output streams can be produced, making resynchronization difficult. Moreover, to incorporate an echo cancellation algorithm into a device driver would introduce complexity where it is neither practical nor desirable.
Because of these problems, certain multi-media applications require that an echo cancellor be integrated into the desktop system in order to support speakerphone audio in point-to-point or multipoint settings. Further, because of the problem of correlating the input and output signals, echo cancellation can become difficult if echoes are not removed at a point which is electrically very close to the input/output (I/O) devices, e.g., the speaker and the microphone. FIG. 2 illustrates one prior art implementation for performing echo cancellation in an existing multi-media application..